/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Hua YY
 * Date: 2023 —11 —12
 * Time: 9:37
 */
class Student{  //（内部内不能有静态声明）创建的类都在test_11_12之外

    public static String classroom = "bite110";//同一个班级，成员变量不属于对象了，静态的成员变量不属于对象
    public int age;
    public String name = "hyy";

    public Student(String name , int age){
       this.name = "hyy";
       this.age = 15;
        System.out.println(name + age);
    }

    public static void Student(String name , int age){
        //静态构造方法
        System.out.println("静态构造方法");
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
        /*return "hyy";*/
    }

    /**
     * 静态代码块
     * 一般就是用来初始化静态变量
     */
    static {
        classroom = "bit";
        System.out.println("这个是静态代码块");
    }

    static {
        System.out.println("多个静态代码块可以看成一个大的静态代码块");
    }


    {
        System.out.println("类内，方法外，叫做构造代码块/实例代码块");
    }

}









public class test_11_12 {
    public static void main(String[] args) {
        Student test1 = new Student("hyy",15);//打印结果是静态代码块和构造代码块，在构造方法之前，与三者位置的先后没有关系
        System.out.println("==================");
        Student.Student("ceshi",14);//静态代码块只打印一次
        /**
         * 总结：静态代码块先打印
         * 再打印构造代码块
         * 静态代码块只打印一次
         */

    }


    public static void main1(String[] args) {
/*

        Student student = new Student();
        //System.out.println(student.classroom);//用引用对象名点不出来classroom但是自己输入不会报错
        System.out.println(student.name+"在"+Student.classroom+"上课");//静态成员变量不需要通过引用对象访问，直接通过类名访问即可
        //System.out.println(Student.Student());//这里构造方法的引用不需要sout
        Student.Student();
        //System.out.println(this.name);//静态方法中不能调用非静态成员变量和非静态成员方法，换个说法不能出现this
*/

    }






}
